Explicit character filtering of ambiguous text entry

ABSTRACT

The present invention relates to a method and apparatus for explicit filtering in ambiguous text entry. The invention provides embodiments including various explicit text entry methodologies, such as 2-key and long pressing. The invention also provides means for matching words in a database using build around methodology, stem locking methodology, word completion methodology, and n-gram searches.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/304,842, filed Jun. 13, 2014, which is a continuation of U.S. patentapplication Ser. No. 13/748,501, filed Jan. 23, 2013, now U.S. Pat. No.8,782,568, issued Jul. 15, 2014, which is a continuation of U.S. patentapplication Ser. No. 12/725,334, filed Mar. 16, 2010, now U.S. Pat. No.8,381,137, issued Feb. 19, 2013, which is a continuation of U.S. patentapplication Ser. No. 10/176,933, filed 20 Jun. 2002, now U.S. Pat. No.7,712,053, issued May 4, 2010, which is a continuation-in-part of U.S.patent application Ser. No. 09/454,406, filed Dec. 3, 1999, now U.S.Pat. No. 6,646,573, issued Nov. 11, 2003, each of which is incorporatedherein in its entirety by this reference thereto.

BACKGROUND OF THE INVENTION

1. Technical Field

The invention relates to text input technology. More specifically, theinvention relates to text entry solutions to wireless communicationdevices with limited keypads.

2. Description of the Prior Art

For many years, portable computers have been getting smaller andsmaller. The principal size-limiting component in the effort to producea smaller portable computer has been the keyboard. If standardtypewriter-size keys are used, the portable computer must be at least aslarge as the keyboard. Miniature keyboards have been used on portablecomputers, but the miniature keyboard keys have been found to be toosmall to be easily or quickly manipulated by a user. Incorporating afull-size keyboard in a portable computer also hinders true portable useof the computer. Most portable computers cannot be operated withoutplacing the computer on a flat work surface to allow the user to typewith both hands. A user cannot easily use a portable computer whilestanding or moving.

In the latest generation of small portable computers, called PersonalDigital Assistants (PDAs), companies have attempted to address thisproblem by incorporating handwriting recognition software in the PDA. Auser may directly enter text by writing on a touch-sensitive panel orscreen. This handwritten text is then converted by the recognitionsoftware into digital data. Unfortunately, in addition to the fact thatprinting or writing with a pen is in general slower than typing, theaccuracy and speed of the handwriting recognition software has to datebeen less than satisfactory.

Presently, a tremendous growth in the wireless industry has spawnedreliable, convenient, and very popular mobile communications devicesavailable to the average consumer, such as cell phones, two-way pagers,PDAs, etc. These handheld wireless communications and computing devicesrequiring text input are becoming smaller still. Recent advances intwo-way paging, cellular telephones, and other portable wirelesstechnologies have led to a demand for small and portable two-waymessaging systems, and especially for systems which can both send andreceive electronic mail (“e-mail”). Some wireless communications devicemanufacturers also desire to provide to consumers devices with which theconsumer can operate with the same hand that is holding the device.

Disambiguation Background. Prior development work has considered use ofa keyboard that has a reduced number of keys. As suggested by the keypadlayout of a touch-tone telephone, many of the reduced keyboards haveused a 3-by-4 array of keys. Each key in the array of keys containsmultiple characters. There is therefore ambiguity as a user enters asequence of keys, since each keystroke may indicate one of severalletters. Several approaches have been suggested for resolving theambiguity of the keystroke sequence, referred to as disambiguation.

One suggested approach for unambiguously specifying characters enteredon a reduced keyboard requires the user to enter, on average, two ormore keystrokes to specify each letter. The keystrokes may be enteredeither simultaneously (chording) or in sequence (multiple-strokespecification). Neither chording nor multiple-stroke specification hasproduced a keyboard having adequate simplicity and efficiency of use.Multiple-stroke specification is inefficient, and chording iscomplicated to learn and use.

Other suggested approaches for determining the correct charactersequence that corresponds to an ambiguous keystroke sequence aresummarized in the article “Probabilistic Character Disambiguation forReduced Keyboards Using Small Text Samples,” published in the Journal ofthe International Society for Augmentative and Alternative Communicationby John L. Arnott and Muhammad Y. Javad (hereinafter the “Arnottarticle”). The Arnott article notes that the majority of disambiguationapproaches employ known statistics of character sequences in therelevant language to resolve character ambiguity in a given context.

Another suggested approach based on word-level disambiguation isdisclosed in a textbook entitled Principles of Computer Speech, authoredby I. H. Witten, and published by Academic Press in 1982 (hereinafterthe “Witten approach”). Witten discusses a system for reducing ambiguityfrom text entered using a telephone touch pad. Witten recognizes thatfor approximately 92% of the words in a 24,500 word dictionary, noambiguity will arise when comparing the keystroke sequence with thedictionary. When ambiguities do arise, however, Witten notes that theymust be resolved interactively by the system presenting the ambiguity tothe user and asking the user to make a selection between the number ofambiguous entries. A user must therefore respond to the system'sprediction at the end of each word. Such a response slows the efficiencyof the system and increases the number of keystrokes required to enter agiven segment of text.

H. A. Gutowitz, Touch-Typable Devices Based on Ambiguous Codes andMethods to Design Such Devices, WO 00/35091 (Jun. 15, 2000) disclosesthat the design of typable devices, and, in particular, touch-typedevices embodying ambiguous codes presents numerous ergonomical problemsand proposes some solutions for such problems. Gutowitz teaches methodsfor the selection of ambiguous codes from the classes ofstrongly-touch-typable ambiguous codes and substantially optimalambiguous codes for touch-typable devices such as computers, PDA's, andthe like, and other information appliances, given design constraints,such as the size, shape and computational capacity of the device, thetypical uses of the device, and conventional constraints such asalphabetic ordering or Qwerty ordering.

Eatoni Ergonomics Inc. provides a system called WordWise, (Copyright2001 Eatoni Ergonomics Inc.), adapted from a regular keyboard, and wherea capital letter is typed on a regular keyboard, and an auxiliary key,such as the shift key, is held down while the key with the intendedletter is pressed. The key idea behind WordWise is to choose one letterfrom each of the groups of letters on each of the keys on the telephonekeypad. Such chosen letters are typed by holding down an auxiliary keywhile pressing the key with the intended letter. WordWise does not use avocabulary database/dictionary to search for words to resolve ambiguous,unambiguous, or a combination thereof entries.

Zi Corporation teaches a predictive text method, eZiText^((R)) (2002 ZiCorporation), but does not teach nor anywhere suggest explicit textfiltering in ambiguous mode, nor in combination with 2-key explicitentry, stem-locking, or n-gram searches.

A Need for Improvements to Current Disambiguation Methodologies.

Disambiguating an ambiguous keystroke sequence continues to be achallenging problem. A specific challenge facing disambiguation isproviding sufficient feedback to the user about the keystrokes beinginput. With an ordinary typewriter or word processor, each keystrokerepresents a unique character which can be displayed to the user as soonas it is entered. But with word-level disambiguation, for example, thisis often not possible, because each entry represents multiplecharacters, and any sequence of entries may match multiple objects, suchas, words or word stems, for example. Such ambiguity is especially aproblem when, for example, the user makes a spelling or entry error andthe user is not certain of such error until the complete sequence isentered and the desired result is not presented. In another example,previous systems utilizing word-level disambiguation fail to provide anyfeedback until a predetermined selection, such as a specific keyselection, is made that is recognizable by the system as a terminationselection, e.g. the space key.

Moreover, some alphabets, such as Thai and Arabic, contain more lettersthan the alphabet for English, which leads to even greater ambiguity ona reduced number of keys. Efficient input of these languages demands amechanism for reducing that ambiguity when needed.

Therefore, it would be advantageous to provide a disambiguating systemwhich reduces the apparent ambiguity on the display during entry andimproves the user's ability to detect and correct spelling and/or entryerrors.

It would also be advantageous to provide a disambiguating system whichreduces ambiguity and increases efficiency by providing explicitfiltering capabilities such that a list of candidate words, word stems,sequence of symbols, and the like, is narrowed, and the user cansubsequently be offered a word completion or sequence completionquicker. More specifically, it would be advantageous to allow locking ina current state of interpretation of a part of or all of previouslyentered characters including, but not limited to an object and/or wordstems, and explicitly entered characters, thereby preventingreinterpretation of previous entries.

It would also be advantageous to build around explicitly enteredcharacters as anchors, for the end of or beginning of new objects,words, or word stems.

It would also be advantageous to offer reasonable guesses for extendingobjects or words by n-gram analysis of preceding explicitly enteredcharacters.

It would also be advantageous to reduce ambiguity and increaseefficiency during the process of disambiguating a linguistic object,such as a word or word stem, for example, by preventing reinterpretationof previous entries.

It would also be advantageous to recognize common delimiters enteredambiguously or explicitly as suggesting a point connecting two separatesets of characters to suggest where the interpretation of keystrokescould be restarted.

SUMMARY OF THE INVENTION

The present invention relates to a method and apparatus for explicitfiltering in ambiguous text entry. The invention provides embodimentsincluding various explicit text entry methodologies, such as 2-key andlong pressing. The invention also provides means for matching words in adatabase using build around methodology, stem locking methodology, wordcompletion methodology, and n-gram searches.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a hardware block diagram of the explicit character filteringsystem according of the invention;

FIG. 2 is a picture of a wireless handheld device showing each letter ofthe English alphabet associated with a key according to the invention;

FIG. 3 is an example chart of European letters and some special symbolsshown on the 0-9 keys and their respective Shift keys according to theinvention;

FIG. 4 is a sample screenshot of one 2-key matrix input method accordingto the invention;

FIG. 5 is a flow chart of 2-key explicit entry for the explicitcharacter filtering in ambiguous text entry system of FIG. 1;

FIG. 6 is a flow chart for explicitly filtering in ambiguous modeaccording to a preferred embodiment of the invention;

FIG. 7 is a flow chart of a method for generating words not stored inthe database according to the invention;

FIG. 8 shows an example of explicit entry by long-pressing on a keyaccording to the invention; and

FIG. 9 is a flow chart depicting a build around example according to theinvention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention relates to a method and apparatus for explicitfiltering in ambiguous text entry. The invention provides embodimentsincluding various explicit text entry methodologies, such as 2-key andlong pressing. The invention also provides means for matching words in adatabase using build around methodology, stem locking methodology, wordcompletion methodology, and n-gram searches.

More specifically, the present invention relates to a method andapparatus for explicit filtering in an ambiguous text entry mode, forextending and interpreting objects, words, word stems, and the like, andfor stem-locking. One specific embodiment of explicit filtering forreducing ambiguity uses a variety of explicit entry means, including a2-key explicit entry feature, wherein a key depression in combinationwith a matrix display are used. An extending and interpretingmethodology is provided wherein complex phrases are allowed to be typedin. Predetermined sets of characters are “built around” as anchors forthe end or beginning of new words or word stems. Reasonable guesses areoffered for extending words by “n-gram” analysis of preceding explicitletters. Specifically, three specific embodiments using stem-locking areprovided, wherein the first embodiment uses a combination of the nletters of a desired object, such as a word, and a next key. The secondembodiment locks in the stem portion of the object and resolves theunlocked portion of the object. The third embodiment uses n-gramsearches.

A block diagram of a preferred embodiment of the reduced keyboarddisambiguating system hardware is provided in FIG. 1. The keyboard 54and the display 53 are coupled to a processor 100 through appropriateinterfacing circuitry. Optionally, a speaker 102 is also coupled to theprocessor. The processor 100 receives input from the keyboard, andmanages all output to the display and speaker. Processor 100 is coupledto a memory 104. The memory includes a combination of temporary storagemedia, such as random access memory (RAM), and permanent storage media,such as read-only memory (ROM), floppy disks, hard disks, or CD-ROMs.Memory 104 contains all software routines to govern system operation.Preferably, the memory contains an operating system 106, disambiguatingsoftware 108, and associated explicit character filtering in ambiguoustext entry software and/or extending and interpreting software 110 thatis discussed in additional detail below. The memory also includes avocabulary database 30. Optionally, the memory may contain one or moreapplication programs 112, 114. Examples of application programs includeword processors, software dictionaries, and foreign languagetranslators. Speech synthesis software may also be provided as anapplication program, allowing the reduced keyboard disambiguating systemto function as a communication aid. Therefore, the output, in this case,might be vocally output from the speaker.

It should be appreciated and understood by one of ordinary skill in theart that the discussion applies to symbols and sequences of symbols,which, when combined make an object or part of an object. A typicalexample of a symbol is a character in any language, such as a letter,digit, punctuation mark, or any other symbol from a language. A typicalexample of an object or part of an object is a word or part of a word.However, the discussion herein equally applies to Japanese kana andKorean jamos. Also, it should be noted that the objects don't have to belinguistic, as the claimed disambiguating system herein can be used tolook up icons, phone numbers, or inventory records, as long as a type ofsymbolic string representation is present. Therefore, it should beappreciated that use of the terms such as letter, word, word stem, andthe like are not limited to only those applications, and are used tofacilitate ease of reading and understanding the discussion herein.

Explicit Entry

One preferred embodiment of generating an explicit character for thepurpose of filtering word choices according to the invention provides a2-key explicit entry feature. In many languages, such as English, allthe letters associated with a key are printed on the key, such asdepicted in FIG. 2, where FIG. 2 is a picture of an example wirelesshandheld device showing each letter of the English alphabet associatedwith a key according to the invention.

However, other languages, such as French, include many more letters thancan visually fit on a key, such as the cell phone key. FIG. 3 is anexample chart of European letters and some special symbols shown on the0-9 keys and their respective Shift keys. For example, if a user pressesthe 5 key, then a matrix display with the alphanumeric characters j, k,I, and 5 appear. FIG. 4 is a sample screenshot of one 2-key matrix inputmethod according to the invention. After the first key has been pressed,the matrix of choices is displayed on the device panel. It should beappreciated that other labels printed on keys are possible, such as, forexample, each key including a subset of predetermined sets of associatedletters, such as displaying the first and last character ofpredetermined sets of associated letters.

FIG. 5 is a flow chart of 2-key explicit entry for the explicitcharacter filtering in ambiguous text entry system of FIG. 1. Accordingto a preferred embodiment of the invention, for a user to explicitlyselect one of many letters assigned to a key, as in the case of theFrench language, the user selects, such as by depression, the associatedkey (5000). The selection, e.g. depression, of the desired key causesthe system to presents a second set of letters, such as in matrix form,that corresponds to the selected key (5100). Each block in the matrixincludes a letter from the set of letters associated with the justselected/depressed key. FIG. 4 shows an example of what is displayed asa result of depressing the 1 key. All that is required at this point isfor the user to select the key number of the matrix block that includesthe desired character (5200). This explicit selection process onlyrequires at maximum 2 key selections/depressions for the selection of aletter.

It should be readily apparent to one of ordinary skill in the art thatthe 2-key explicit entry method for the purpose of filtering can beextended to any other language. It should also be apparent to one ofordinary skill in the art that alternate configurations are possible,such as, for example, a scrolling list.

According to an alternate configuration, the user selects a key by wayof a long-press to display and cycle through the character sequence onthat key. As shown in FIG. 8, some or all of the characters may scrollpast in a preview window as long as the key is being pressed. When thekey is released, the last highlighted character is accepted.

In yet another configuration, after the character sequence is presentedby way of the long-press on the key, the character appears or ishighlighted each additional time the key is pressed. The presentation ofeach explicit character may end when a sufficient time elapses betweenone key press and the next or when a different key is pressed.

In yet another configuration, after the character sequence is presentedby way of the long-press on the key, the character appears or ishighlighted each additional time a navigation key is pressed, where anavigation key is, for example, an arrow key or a scrolling wheel.

Following is a list of other explicit entry means for filtering. Itshould be appreciated that the list is meant by example only, and is notexhaustive: long pressing on a key to enter a number/digit explicitly;

changing to a numbers mode and pressing a key to enter a number/digitexplicitly (and then returning to ambiguous entry mode for filtering);

changing to a multi-tap mode and pressing a key repeatedly to enter acharacter explicitly (and then returning to ambiguous entry mode forfiltering); interpreting ambiguous mode key presses as an explicitcharacter, either by grouping each pair of key presses as a 2-keyexplicit entry, or by grouping repeated presses of the same key as amulti-tap entry;

using multi-switch keys, such as a 5-way rocker, which permits ambiguousentry on a simple press and an explicit character entry on a differentkind of press; and

by “chording,” which means by pressing more than one key simultaneously,with a primary key indicating an ambiguous set of characters and asecondary key indicating which character in the set to select (e.g., ona video game controller).

Another means of explicit entry for filtering is when any characterassigned to a key is offered to the user through a secondary means,e.g., displayed on the label of a programmable key, or “softkey”, whichif chosen would be entered explicitly. The softkey mechanism allowscorrection of the last keystroke entered, e.g., if the user is extendinga word with additional characters or wishes to correct the displayedinterpretation before the entire word is entered. The additionalcharacter offered would be based on an analysis of the most likelycharacter associated with the preceding keystroke, or based on the wordsin the current word candidate list. Assuming the most likely characterwas already displayed in the ambiguous word choice, then the second mostlikely character would be offered. For instance, if the user wants totype “ram” and enters the key sequence 726, the word “ran” appears. Themost likely letter for that position in the word candidate listassociated with 726 is “m”, then “m” could be offered on the softkey.When the user presses the softkey, the “m” replaces the “n” in the word“ran”.

Explicit Character Filtering in Ambiguous Mode

Explicit character filtering in ambiguous mode is when a character isexplicitly entered during entry of a sequence of ambiguous entries. Oneembodiment of explicit entry already discussed is the 2-key explicitentry method using a matrix as described above. According to anotherpreferred embodiment of the invention, explicit entry of a character isaccomplished by a long depression of the associated key. When one ormore characters in a sequence of characters is explicitly entered, onlystored words with that explicitly selected character(s) in thecorresponding position(s) are retrieved.

One way of retrieving the desired word according to one embodiment ofthe invention is when an explicit character is entered in ambiguousentry mode, then the disambiguating filtering system continues to matchdatabase words against the ambiguous and explicit letters as long aspossible, rather than accepting the default word upon the first explicitletter. If there is no match, the last ambiguous word selected isaccepted and a new letter is appended to it.

As an example, suppose a user wants to enter the word “home” in EnglishT9. The user long presses the 6 key in the 3^(rd) position to explicitlyselect “m,” resulting in only “home,” and, in addition, word stems“imme” and “gome” after 4 keystrokes.

Another example is using a mixed alphanumeric word like “cu2night”,which could be stored in a database. If the user long presses on the 2key, then explicitly enters a “2,” words such as “cub” are thus filteredout from the word candidate list.

Explicit filtering is another way to quickly offer word completions. If“cu2night” was in a database, and “cu” was entered ambiguously followedby “2” explicitly, all ambiguous interpretations of the keystrokesequence “282” will be filtered out, leaving “cu2night” as a more likelychoice to be offered through word completion.

FIG. 6 is a flow chart for explicitly filtering in ambiguous modeaccording to a preferred embodiment of the invention. A character isdesired and its associated key is entered either ambiguously orexplicitly (6000). The desired word is then interpreted based on thesequence of ambiguously selected keys (i.e. their associated characters)and the explicitly selected characters. The database is searched forwords with the characters associated with ambiguously selected entries,e.g. keys, and with the explicitly entered characters, in theirrespective corresponding positions (6100). The searched words are thenpresented or displayed in a predetermined prioritized order (6200), suchas a most frequently used order. If the desired word is among the set ofpresented searched words (6300), then the desired word is chosen (6400)and the process ends. Otherwise, the process is not over and steps arerepeated from selecting a desired key (6000).

Build Around

In another aspect of the disambiguating filtering system, words from thedatabase can be “built around” explicitly or ambiguously enteredcharacters, or, additionally characters from a predetermined set ofcharacters. According to one interpretation, the matching words, if any,include the explicit character for a particular sequence. However,additional interpretations of the sequence may include: one or morewords that match the ambiguous keys that precede and/or end with theexplicit character; one or more matching words that begin with theexplicit character if any; and one or more words that match theambiguous keys that follow the explicit character. For example, if thekey sequence for “gifts4less” is entered, with the digit “4” enteredexplicitly, the words “gifts” matches the ambiguous key sequencepreceding the explicit character and “less” matches the key sequencefollowing it, even if “gifts4less”, “gifts4”, and “4less” are not foundin the database. Similarly, “mobile.com” may be typed as one wordautomatically constructed from the database entries “mobile” and “.com”,or from the entries “mobile” and “.” and “com” if there is a key forambiguous punctuation; in either of those cases the period may not needbe explicitly entered.

One embodiment of the build around concept can be described withreference to FIG. 9, a flow chart depicting a build around example. Thebuild around method starts (9000) with a key sequence being entered,e.g., [k1 k2 k3 kd k5 k6 k7 k8]. The k#'s refer to ambiguously enteredkeys and kd refers to a delimiting key that can be either an explicitlyentered character an ambiguously entered punctuation character. Themethod then determines if the database found a match (9100). If yes, aword is displayed (9200). If the user desires to proceed to the nextchoice in the list of words found by the database, the user presses anext key to request further lookups by the database (9300).Specifically, the database is multiply searched for matches to keysequences. A key sequence is divided into two sets on either side of adelimiter. An example of various groupings of two sets of sequencesdivided by a delimiter follows:

[k1 k2 k3 kd] [k5 k6 k7 k8];

[k1 k2 k3] [kd k5 k6 k7 k8]; and

[k1 k2 k3] kd [k5 k6 k7 k8].

If a match is found among any of the groups (9400), then the desiredword is chosen and displayed (9500). If the user desires to build aroundthis sequence, the user can press a next key to obtain the next set ofresults from multiple searches to the database (9600).

If the database did not find an initial match (9100), then the databaseis multiply searched for matches to key sequences (9700), wherein a keysequence is divided into two sets on either side of a delimiter,description of which and examples of which are presented above.

It should be appreciated that means to search for and display/presentthe set of possible desired words can vary and still remain within thescope and spirit of the invention.

Stem-locking

In the preferred embodiment of the invention, stem-locking is lockingone or more subsequences or substrings of characters within a sequence.For example, the first n-numbers of sequence of characters of a word canbe locked in. The way stem-locking works is that only words with thoselocked in characters are searched. For instance, suppose a user selectsthe 4 and then the 6 key of a wireless cell phone using T9 technology.The word “go” is presented in the display. If “go” is locked in, thenupon subsequent key selections, only words with “go” in the first twopositions are selected.

The locking of letters can be performed in a number of different ways.For example, two such ways are by a “full next locking” mechanism and an“unbounded” methodology by moving a cursor over characters to select. Asan example of implementing “full next locking,” a “next” key is used.That is, according to one embodiment of the invention, selecting a“next” key locks in a previously presented series of characters, therebyeliminating the possibility of the system re-interpreting the object byre-interpreting the locked in series of characters. The selected seriesof characters are now marked as explicitly entered. An example of movingthe cursor over characters (unbounded) according to one embodiment ofthe invention, the cursor is moved to the beginning of a series and bythe user selecting a right-arrow key (or a left-arrow key, for example,in the Hebrew language), all the characters that the cursor moved overare locked in.

Another aspect of full next locking is locking a previously presentedseries of characters when likely word boundaries are identified. Suchboundaries can be identified based on certain sequences of interactions,such as, for example, when the user “nexts” and then selects a symbol orpunctuation character; or, when the user “nexts” and then enters anexplicit number.

It should be appreciated that other methods to “lock” include, but areby no means limited to:

pressing a key assigned to the “lock” function, such as an OK or Selectkey; and pressing an appropriate arrow key to “lock” in a wordcompletion being offered.

Stem locking approaches, such as those discussed above, can be relatedto “build around” as described herein above. That is, once a sequencehas been locked in, it can be “built around.”

Japanese Kana Example

Another example of the disambiguating filtering methodology is in theJapanese language. Sub-phrases in kana (phonetic) character form can beconverted to kanji (Yomikata), and those converted sub-phrases may inturn filter interpretations of the remaining ambiguous kana preceding orfollowing the converted sub-phrases, excluding interpretations thatcan't be used to construct valid phrases.

In another embodiment of the invention, a hierarchy of locks mechanismis used. For example, a right arrow key can lock in all characters tothe left of the cursor. Therefore, in this implementation, a right-arrowkey locks in a first-choice stem, while a “next” key locks in anot-first-choice stem.

Another implementation is using a “select” key instead of a right-arrowkey in combination with a “next” key. For example, the “select” key canbe used at the end of each ambiguous key sequence for either selectingand accepting the default choice (the select key is pressed once) or forselecting an alternative choice (the select key is pressed more thanonce until the desired choice appears or is highlighted). In this case,the “select” key is used to stem lock either the first or alternatechoices, rather than using the right-arrow key for the first choice andthe “next” key for other choices (or vice-versa, as the choice of keysis arbitrary, yet predetermined).

Word Extension and Completion

Another aspect of the invention is the system automatically starting anew word at a lock position. For example, the user enters “car” andlocks it, and then enters the keys for “pet”. “Carpet” is shown becauseit is a complete word in the database. The word “carset” is also shownbecause it is “car”+“set”, which is another example of the “buildaround” concept, where an ambiguous sequence may follow an explicitcharacter entry, causing one interpretation to be the beginning of a newambiguous word.

Alternatively, when one or more previously-accepted characters precedes(is adjacent to, without spaces) the current and active ambiguous keysequence. The system uses the preceding characters to match words andphrases (e.g., in the user database) that begin with those charactersand that match an ambiguous key sequence following those characters.Optionally, one or more word completions is offered. An example follows.A user enters and locks in (accepts) the characters, “con.” Then, theuser types ambiguous keys for “stan” and is offered “constantinople” asa word completion. In this example, the user could have used aleft-/right-arrow key to accept “con” to be used to filter and tosuggest word completions that begin with the accepted chars and areimmediately adjacent to an ambiguous key sequence. Hebrew and otherlanguages go the other direction, hence right-side-only is not assumed.

FIG. 7 is a flow chart of a method for generating words not stored inthe database according to the invention. That is, in an equallypreferred alternate embodiment, if a series of entries is locked in(7000) and subsequent ambiguous characters entered (7100) and acorresponding stored word is not found in the database (7200), thensearches are performed for likely combinations based on the previous nlocked in characters (7300). In one preferred embodiment of theinvention, an n-gram is used to find stored words. This is contrary tousing the entire set of locked in letters. For example, suppose a userhas entered and explicitly selected the word “flight”, but the user,however, wants to enter the word “flightplan” which is not in thedatabase. In this embodiment of the invention, the user then explicitlylocks in the letter “p” and “I” after “flight”. The system then searchesfor words using the last explicitly entered bigram (p and I). Thus,words that are not stored in the database are generated.

Although the invention is described herein with reference to thepreferred embodiment, one skilled in the art will readily appreciatethat other applications may be substituted for those set forth hereinwithout departing from the spirit and scope of the present invention.

Accordingly, the invention should only be limited by the Claims includedbelow.

1. A computer-implemented method comprising: receiving a series of keyentries from a user input device; determining at least one entry in theseries of key entries is ambiguous, wherein each ambiguous entrycorresponds to two or more potential characters in a human language;determining one or more entry groups in the series of key entries andone or more potential character sequences associated with the entrygroups, wherein, when a first entry group of the entry groups includesan ambiguous entry, the first entry group corresponds to at least twopotential character sequences; matching a potential character sequenceof the potential character sequences against a language database; andpresenting the potential character sequence on a character inputinterface when the potential character sequence matches at least aportion of a known word or object in the language database.
 2. Thecomputer-implemented method of claim 1, further comprising: locking thepotential character sequence such that the first entry group isconsidered unambiguous and explicitly corresponding to the potentialcharacter sequence.
 3. The computer-implemented method of claim 2,wherein locking the potential character sequence is in response toreceiving a user input via the user input device.
 4. Thecomputer-implemented method of claim 3, wherein the user inputcorresponds to a character indicating a word boundary.
 5. Thecomputer-implemented method of claim 3, wherein the user inputcorresponds to a command to move a cursor of the character inputinterface toward a next character.
 6. The computer-implemented method ofclaim 1, further comprising: receiving user input to move a cursor overone or more characters in the potential character sequence; and lockingthe one or more characters that the cursor moved over such that entriescorresponding to the one or more characters are considered unambiguousand explicitly entered.
 7. The computer-implemented method of claim 1,further comprising locking a subsequence of the potential charactersequence thereby causing one or more entries to correspond explicitly torespective characters in the subsequence.
 8. The computer-implementedmethod of claim 7, further comprising: determining one or more new entrygroups in the series of key entries and one or more new potentialcharacter sequences associated with the new entry groups; and selectingat least one of the new potential character sequences corresponding to asecond entry group to present on a character input interface based onwhether the selected new potential character sequence matches at least aportion of a known word or object in the language database.
 9. Thecomputer-implemented method of claim 1, wherein said matching includesperforming an N-Gram search.
 10. The computer-implemented method ofclaim 1, wherein the user input device is a keyboard component of amobile device and wherein the character input interface is displayed ona display component of the mobile device.
 11. A computer-implementedmethod comprising: receiving a series of key entries via a user inputdevice; determining, based on a user interaction with a text entryinterface, at least a first key entry being explicitly associated with acharacter in a human language; determining, based on a known attributeof the user input device, two or more potential characters for at leasta second key entry; identifying character combinations based oncharacters, explicit or ambiguous, of the series of key entries; andperforming a search to identify a likely character combination fromamong the character combinations that at least partially matches a wordor object in a language database.
 12. The computer-implemented method ofclaim 11, further comprising: responsive to the search not identifyingany character combination that at least partially matches a word orobject in the language database, performing a modified search toidentify the likely character combination as a character combinationincluding most number of explicit or locked-in characters.
 13. Thecomputer-implemented method of claim 11, wherein performing the searchincludes determining whether there is a match in the language databaseto a character combination sequence of an entire length of the series ofkey entries.
 14. The computer-implemented method of claim 13, furthercomprising displaying the character combination sequence when there is amatch in the language database for the character combination sequence ofthe entire length of the series of key entries.
 15. Thecomputer-implemented method of claim 13, wherein performing the searchfurther comprises: dividing the series of key entries into subsets ofentries when there is no match in the language database for thecharacter combination sequence of the entire length.
 16. Thecomputer-implemented method of claim 15, wherein performing the searchfurther comprises: determining whether there is a match for a charactersubsequence corresponding to a first subset of entries, wherein thecharacter subsequence includes an explicit character, a potentialcharacter, or any combination thereof.
 17. The computer-implementedmethod of claim 16, further comprising displaying the charactersubsequence for user verification via the text entry interface whenthere is a match for the character subsequence in the language database.18. An apparatus for typing in a human language comprising: a user inputdevice to receive a series of key entries; a display device fordisplaying a text entry interface; a processor; a memory storing alanguage object database and executable instructions to implement anengine when executed by the processor; wherein the engine is operable toconfigure the processor to: determine, based on a user interaction withthe text entry interface, at least a first key entry being explicitlyassociated with a character in a human language; determine, based on aknown attribute of the user input device, two or more potentialcharacters for at least a second key entry; identify charactercombinations based on characters, explicit or ambiguous, correspondingto the series of key entries; and perform a search to identify a likelycharacter combination from among the character combinations that atleast partially matches a word or object in a language database.
 19. Theapparatus of claim 18, wherein the user input device includes a buttonthat, when pressed, generates an ambiguous key entry that corresponds toat least two potential characters in the human language.
 20. Theapparatus of claim 19, wherein the known attribute of the user inputdevice specifies the potential characters corresponding to the button.